package student.aistar.service;

import student.aistar.model.entity.BoxOrder;
import student.aistar.model.entity.BoxSeckill;
import student.aistar.model.entity.Orderdetail;
import student.aistar.model.entity.Orders;

import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @Auther: zhugefeng
 * @Date:2021/10/14 11:24
 **/
public interface IBoxSeckillService {

    List<BoxSeckill> getAllBoxSeckill();
    //查询所有秒杀
    List<Map<String,Object>> getAllBoxSeckillBefore();

    //查询所有秒杀订单
    List<BoxOrder> getAllBoxOrder();

    //功能描述:秒杀活动尚未开始-秒杀活动进行中
    //     *状态{0} 更新成{1}
    void updateBoxState();

    //功能描述:加载秒杀活动进行中的秒杀id
    List<Long> getBoxById();

    //秒杀活动结束
    void endBoxActive();

    //加载出秒杀活动结束之后的商品的id
    List<Long> getBoxEndId();

    //获取当前秒杀id的状态
    String getBoxStatus(long killId);

    //将秒杀的信息发送到rabbitmq消息队列中去
    void saveBoxOrder(String username,long killid);

    //秒杀订单
    void saveBoxSeckillOrder(String orderNo,String uName,long secId);

    //秒杀订单插入用户订单表
    int insertOrders(Orders order);

    //秒杀订单插入用户订单详情表
    void insertOrderDetail(Orderdetail orderdetail);

    //根据秒杀id查询秒杀
    BoxSeckill selectBoxSeckillById(Long killId);
}
